#pragma once

#include "IDBConnection.h"
#include "IDBTransaction.h"
#include "..\Factory\DBEngineFactory.h"
#include "..\ConstDefinition\EnumDefinition.h"
#include "..\Factory\PersistenceProperty.h"

interface AFX_CLASS_EXPORT IDBEngine
{
public:

	IDBEngine(CPersistenceProperty pp);
	virtual ~IDBEngine(void);

public:
	virtual EDatabaseType GetDatabaseType() = 0; 
	virtual IDBConnection GetDBConnection() = 0; 
	
	virtual void Open() = 0; 
	
	virtual void Close() = 0;

	
	//////////////////////////////////////////////////////////////////////////
	virtual IDBTransaction BeginTransaction() = 0; 
	virtual int ExecuteNonQuery(CString commandText) = 0; 
	virtual int ExecuteDataset(CString commandText) = 0; 

private:
	//IDBEngine(void);
};
